const model = {
  key: "wxwork_third",
  name: "企业微信(第三方)",

  template: [
    {
      key: "base",
      name: "基础",
      input: {},
      output: {},
      url: "/api/libs/wxwork_third/base.js",
    },
    {
      key: "createUser",
      name: "创建成员",
      description: "创建成员",
      input: {
        userid: {
          key: "userid",
          remark:
            "必须参数,成员UserID。对应管理端的帐号，企业内必须唯一。不区分大小写，长度为1~64个字节。只能由数字、字母和“_-@.”四种字符组成，且第一个字符必须是数字或字母。",
        },
        name: {
          key: "name",
          remark: "必须参数,成员名称。长度为1~64个utf8字符",
        },
        alias: {
          key: "alias",
          remark: "非必须参数,成员别名。长度1~32个utf8字符",
        },
        mobile: {
          key: "mobile",
          remark:
            "非必须参数,手机号码。企业内必须唯一，mobile/email二者不能同时为空",
        },
        department: {
          key: "department",
          remark:
            '非必须参数,成员所属部门id列表,不超过100个。请以字符串形式传入。如"[1,2]"。',
        },
        order: {
          key: "order",
          remark:
            "非必须参数,部门内的排序值，默认为0，成员次序以创建时间从小到大排列。个数必须和参数department的个数一致，数值越大排序越前面。有效的值范围是[0, 2^32)",
        },
        position: {
          key: "position",
          remark: "非必须参数,职务信息。长度为0~128个字符",
        },
        gender: {
          key: "gender",
          remark: "非必须参数,性别。1表示男性，2表示女性",
        },
        email: {
          key: "email",
          remark:
            "非必须参数,邮箱。长度6~64个字节，且为有效的email格式。企业内必须唯一，mobile/email二者不能同时为空",
        },
        telephone: {
          key: "telephone",
          remark: "非必须参数,座机。32字节以内，由纯数字或’-‘号组成。",
        },
        is_leader_in_dept: {
          key: "is_leader_in_dept",
          remark:
            "非必须参数,数必须和参数department的个数一致，表示在所在的部门内是否为上级。1表示为上级，0表示非上级。在审批等应用里可以用来标识上级审批人",
        },
        avatar_mediaid: {
          key: "avatar_mediaid",
          remark:
            "非必须参数,成员头像的mediaid，通过素材管理接口上传图片获得的mediaid",
        },
        enable: {
          key: "enable",
          remark: "非必须参数，启用/禁用成员。1表示启用成员，0表示禁用成员",
        },
        to_invite: {
          key: "to_invite",
          remark:
            "非必须参数，是否邀请该成员使用企业微信（将通过微信服务通知或短信或邮件下发邀请，每天自动下发一次，最多持续3个工作日），默认值为true。",
        },
        address: {
          key: "address",
          remark: "非必须参数，地址。长度最大128个字符",
        },
        main_department: {
          key: "main_department",
          remark: "非必须参数，主部门id",
        },
      },
      output: {},
      url: "/api/libs/wxwork_third/createUser.js",
    },
    {
      key: "updateUser",
      name: "更新成员",
      description: "更新成员",
      input: {
        userid: {
          key: "userid",
          remark: "必须参数,要更新的成员UserID。",
        },
        newUserid: {
          key: "newUserid",
          remark:
            "非必须参数,成员UserID。对应管理端的帐号，企业内必须唯一。不区分大小写，长度为1~64个字节。只能由数字、字母和“_-@.”四种字符组成，且第一个字符必须是数字或字母。",
        },
        name: {
          key: "name",
          remark: "必须参数,成员名称。长度为1~64个utf8字符",
        },
        alias: {
          key: "alias",
          remark: "非必须参数,成员别名。长度1~32个utf8字符",
        },
        mobile: {
          key: "mobile",
          remark:
            "非必须参数,手机号码。企业内必须唯一，mobile/email二者不能同时为空",
        },
        department: {
          key: "department",
          remark:
            '非必须参数,成员所属部门id列表,不超过100个。请以字符串形式传入。如"[1,2]"。',
        },
        order: {
          key: "order",
          remark:
            "非必须参数,部门内的排序值，默认为0，成员次序以创建时间从小到大排列。个数必须和参数department的个数一致，数值越大排序越前面。有效的值范围是[0, 2^32)",
        },
        position: {
          key: "position",
          remark: "非必须参数,职务信息。长度为0~128个字符",
        },
        gender: {
          key: "gender",
          remark: "非必须参数,性别。1表示男性，2表示女性",
        },
        email: {
          key: "email",
          remark:
            "非必须参数,邮箱。长度6~64个字节，且为有效的email格式。企业内必须唯一，mobile/email二者不能同时为空",
        },
        telephone: {
          key: "telephone",
          remark: "非必须参数,座机。32字节以内，由纯数字或’-‘号组成。",
        },
        is_leader_in_dept: {
          key: "is_leader_in_dept",
          remark:
            "非必须参数,数必须和参数department的个数一致，表示在所在的部门内是否为上级。1表示为上级，0表示非上级。在审批等应用里可以用来标识上级审批人",
        },
        avatar_mediaid: {
          key: "avatar_mediaid",
          remark:
            "非必须参数,成员头像的mediaid，通过素材管理接口上传图片获得的mediaid",
        },
        enable: {
          key: "enable",
          remark: "非必须参数，启用/禁用成员。1表示启用成员，0表示禁用成员",
        },
        to_invite: {
          key: "to_invite",
          remark:
            "非必须参数，是否邀请该成员使用企业微信（将通过微信服务通知或短信或邮件下发邀请，每天自动下发一次，最多持续3个工作日），默认值为true。",
        },
        address: {
          key: "address",
          remark: "非必须参数，地址。长度最大128个字符",
        },
        main_department: {
          key: "main_department",
          remark: "非必须参数，主部门id",
        },
      },
      output: {},
      url: "/api/libs/wxwork_third/updateUser.js",
    },
    {
      key: "deleteUser",
      name: "删除成员",
      description: "删除成员",
      input: {
        userid: {
          key: "userid",
          remark: "必须参数,需删除的成员UserID。",
        },
      },
      output: {},
      url: "/api/libs/wxwork_third/deleteUser.js",
    },
    {
      key: "createDepartment",
      name: "创建部门",
      description: "创建部门",
      input: {
        name: {
          key: "name",
          remark:
            "必须参数,部门名称。同一个层级的部门名称不能重复。长度限制为1~32个字符，字符不能包括:?”<>｜",
        },
        name_en: {
          key: "name_en",
          remark:
            "非必须参数，英文名称。同一个层级的部门名称不能重复。需要在管理后台开启多语言支持才能生效。长度限制为1~32个字符，字符不能包括:?”<>｜",
        },
        parentid: {
          key: "parentid",
          remark: "必须参数，父部门id，32位整型",
        },
        order: {
          key: "order",
          remark:
            "非必须参数，在父部门中的次序值。order值大的排序靠前。有效的值范围是[0, 2^32)",
        },
        id: {
          key: "id",
          remark:
            "非必须参数，部门id，32位整型，指定时必须大于1。若不填该参数，将自动生成id",
        },
      },
      output: {
        id: {
          key: "id",
          remark: "创建的部门id",
        },
      },
      url: "/api/libs/wxwork_third/createDepartment.js",
    },
    {
      key: "updateDepartment",
      name: "更新部门",
      description: "更新部门",
      input: {
        id: {
          key: "id",
          remark: "要更新的部门id",
        },
        name: {
          key: "name",
          remark:
            "非必须参数,部门名称。同一个层级的部门名称不能重复。长度限制为1~32个字符，字符不能包括:?”<>｜",
        },
        name_en: {
          key: "name_en",
          remark:
            "非必须参数，英文名称。同一个层级的部门名称不能重复。需要在管理后台开启多语言支持才能生效。长度限制为1~32个字符，字符不能包括:?”<>｜",
        },
        parentid: {
          key: "parentid",
          remark: "非必须参数，父部门id，32位整型",
        },
        order: {
          key: "order",
          remark:
            "非必须参数，部门id，32位整型，指定时必须大于1。若不填该参数，将自动生成id",
        },
      },
      output: {},
      url: "/api/libs/wxwork_third/updateDepartment.js",
    },
    {
      key: "deleteDepartment",
      name: "删除部门",
      description: "删除部门",
      input: {
        id: {
          key: "id",
          remark: "要删除的部门id",
        },
      },
      output: {},
      url: "/api/libs/wxwork_third/deleteDepartment.js",
    },
    {
      key: "getDepartmentList",
      name: "获取部门列表",
      description: "获取指定部门及其下的子部门",
      input: {
        id: {
          key: "id",
          remark: "要获取的部门id",
        },
      },
      output: {
        departmentList: {
          key: "departmentList",
          remark: "字符串格式的部门列表",
        },
      },
      url: "/api/libs/wxwork_third/getDepartmentList.js",
    },
    {
      key: "getDepartmentSimpleList",
      name: "获取部门成员",
      description: "获取指定部门及其子部门下面的成员",
      input: {
        department_id: {
          key: "department_id",
          remark: "必须参数，获取的部门id",
        },
        fetch_child: {
          key: "fetch_child",
          remark:
            "非必须参数。是否递归获取子部门下面的成员：1-递归获取，0-只获取本部门。不填默认为0",
        },
      },
      output: {
        userList: {
          key: "userList",
          remark: "字符串格式的部门成员列表（非详情）",
        },
      },
      url: "/api/libs/wxwork_third/getDepartmentSimpleList.js",
    },
    {
      key: "getDepartmentUserList",
      name: "获取部门成员详情",
      description: "获取指定部门及其子部门下面的成员详情",
      input: {
        department_id: {
          key: "department_id",
          remark: "必须参数，获取的部门id",
        },
        fetch_child: {
          key: "fetch_child",
          remark:
            "非必须参数。是否递归获取子部门下面的成员：1-递归获取，0-只获取本部门。不填默认为0",
        },
      },
      output: {
        userList: {
          key: "userList",
          remark: "字符串格式的部门成员列表（详情）",
        },
      },
      url: "/api/libs/wxwork_third/getDepartmentUserList.js",
    },
    {
      key: "createTag",
      name: "创建标签",
      description: "创建企业标签",
      input: {
        tagname: {
          key: "tagname",
          remark:
            "必须参数，标签名称，长度限制为32个字以内（汉字或英文字母），标签名不可与其他标签重名。",
        },
        tagid: {
          key: "tagid",
          remark:
            "非必须参数。标签id，非负整型，指定此参数时新增的标签会生成对应的标签id，不指定时则以目前最大的id自增。",
        },
      },
      output: {
        tagid: {
          key: "tagid",
          remark: "标签id",
        },
      },
      url: "/api/libs/wxwork_third/createTag.js",
    },
    {
      key: "updateTag",
      name: "更新标签名字",
      description: "更新标签名字",
      input: {
        tagid: {
          key: "tagid",
          remark: "必须参数。标签id",
        },
        tagname: {
          key: "tagname",
          remark: "必须参数，标签名称",
        },
      },
      output: {},
      url: "/api/libs/wxwork_third/updateTag.js",
    },
    {
      key: "deleteTag",
      name: "删除标签",
      description: "删除企业标签",
      input: {
        tagid: {
          key: "tagid",
          remark: "必须参数。标签id",
        },
      },
      output: {},
      url: "/api/libs/wxwork_third/deleteTag.js",
    },
    {
      key: "getTagUserList",
      name: "获取标签成员",
      description: "获取标签成员（非详情）",
      input: {
        tagid: {
          key: "tagid",
          remark: "必须参数。标签id",
        },
      },
      output: {
        tagname: {
          key: "tagname",
          remark: "标签名字",
        },
        userList: {
          key: "userList",
          remark: "字符串格式的标签成员列表",
        },
      },
      url: "/api/libs/wxwork_third/getTagUserList.js",
    },
    {
      key: "getExternalContactList",
      name: "获取客户列表",
      description: "获取指定成员的客户id列表",
      input: {
        userid: {
          key: "userid",
          remark: "必须参数。成员userid",
        },
      },
      output: {
        externalUseridList: {
          key: "externalUseridList",
          remark: "字符串格式的客户external_userid列表",
        },
      },
      url: "/api/libs/wxwork_third/getExternalContactList.js",
    },
    {
      key: "getExternalContact",
      name: "获取客户详情",
      description: "获取指定客户的详细信息",
      input: {
        externalUserId: {
          key: "externalUserId",
          remark: "必须参数。外部联系人的userid，注意不是企业成员的帐号",
        },
      },
      output: {
        externalUser: {
          key: "externalUser",
          remark: "字符串格式的客户信息",
        },
      },
      url: "/api/libs/wxwork_third/getExternalContact.js",
    },
    {
      key: "uploadMedia",
      name: "上传临时素材",
      description: "上传临时素材",
      input: {
        image_url: {
          key: "image_url",
          remark: "必须参数。图片地址",
        },
      },
      output: {
        media_id: {
          key: "media_id",
          remark: "媒体文件上传后获取的唯一标识，3天内有效",
        },
        created_at: {
          key: "created_at",
          remark: "媒体文件上传时间戳",
        },
      },
      url: "/api/libs/wxwork_third/uploadMedia.js",
    },
    {
      key: "add_contact_way",
      name: "配置客户联系「联系我」方式",
      description:
        "通过API添加的「联系我」不会在管理端进行展示，每个企业可通过API最多配置50万个「联系我」。用户需要妥善存储返回的config_id，config_id丢失可能导致用户无法编辑或删除「联系我」。",
      input: {
        type: {
          key: "type",
          remark: "必须参数。联系方式类型,1-单人, 2-多人",
        },
        scene: {
          key: "scene",
          remark: "场景，1-在小程序中联系，2-通过二维码联系",
        },
        remark: {
          key: "remark",
          remark: "非必须参数，联系方式的备注信息，用于助记，不超过30个字符",
        },
        skip_verify: {
          key: "skip_verify",
          remark: "非必须参数。外部客户添加时是否无需验证，默认为true",
        },
        state: {
          key: "state",
          remark:
            "非必须参数。企业自定义的state参数，用于区分不同的添加渠道，在调用“获取外部联系人详情”时会返回该参数值，不超过30个字符",
        },
        user: {
          key: "user",
          remark:
            '非必须参数。使用该联系方式的用户userID列表(字符串格式。如"zhangsan,lisi")，在type为1时为必填，且只能有一个',
        },
        party: {
          key: "party",
          remark:
            '非必须参数。使用该联系方式的部门id列表（字符串格式，如"1,2"），只在type为2时有效',
        },
      },
      output: {
        config_id: {
          key: "config_id",
          remark: "新增联系方式的配置id",
        },
      },
      url: "/api/libs/wxwork_third/add_contact_way.js",
    },
    {
      key: "getContactWay",
      name: "获取客户联系「联系我」方式",
      description:
        "通过API添加的「联系我」不会在管理端进行展示，每个企业可通过API最多配置50万个「联系我」。用户需要妥善存储返回的config_id，config_id丢失可能导致用户无法编辑或删除「联系我」。",
      input: {
        config_id: {
          key: "config_id",
          remark: "必须参数。联系方式的配置id",
        },
      },
      output: {
        contactWay: {
          key: "contactWay",
          remark: "字符串格式的「联系我」方式",
        },
      },
      url: "/api/libs/wxwork_third/getContactWay.js",
    },
    {
      key: "sendWelcomeMsg",
      name: "发送新客户欢迎语",
      description:
        "企业微信在向企业推送添加外部联系人事件时，会额外返回一个welcome_code，企业以此为凭据调用接口，即可通过成员向新添加的客户发送个性化的欢迎语。",
      input: {
        welcomeCode: {
          key: "welcomeCode",
          remark:
            "必须参数。通过添加外部联系人事件推送给企业的发送欢迎语的凭证，有效期为20秒",
        },
        text: {
          key: "text",
          remark: "非必需参数，消息文本内容,最长为4000字节",
        },
        media_id: {
          key: "media_id",
          remark: "非必须参数，图片的media_id，可以通过素材管理接口获得",
        },
        pic_url: {
          key: "pic_url",
          remark: "非必须参数。图片的链接，仅可使用上传图片接口得到的链接",
        },
        link_title: {
          key: "link_title",
          remark: "必须参数。图文消息标题，最长为128字节",
        },
        link_picurl: {
          key: "link_picurl",
          remark: "非必须参数。图文消息封面的url",
        },
        link_desc: {
          key: "link_desc",
          remark: "非必须参数。图文消息的描述，最长为512字节",
        },
        link_url: {
          key: "link_url",
          remark: "必须参数。图文消息的链接",
        },
        miniprogram_title: {
          key: "miniprogram_title",
          remark: "须参数。小程序消息标题，最长为64字节",
        },
        miniprogram_pic__media_id: {
          key: "miniprogram_pic__media_id",
          remark: "必须参数。小程序消息封面的mediaid，封面图建议尺寸为520*416",
        },
        appid: {
          key: "appid",
          remark: "必须参数。小程序appid，必须是关联到企业的小程序应用",
        },
        page: {
          key: "page",
          remark: "必须参数。小程序page路径",
        },
      },
      output: {},
      url: "/api/libs/wxwork_third/sendWelcomeMsg.js",
    },
    {
      key: "getGroupChatList",
      name: "获取客户群列表",
      description: "该接口用于获取配置过客户群管理的客户群列表。",
      input: {
        status_filter: {
          key: "status_filter",
          remark:
            "非必须参数。群状态过滤。0 - 所有列表，1 - 离职待继承，2 - 离职继承中，3 - 离职继承完成。默认为0",
        },
        userid_list: {
          key: "userid_list",
          remark:
            '非必需参数，用户ID列表,字符串格式，如"zhangsam,lisi"。最多100个',
        },
        partyid_list: {
          key: "partyid_list",
          remark: '非必需参数，部门ID列表,字符串格式，如"1,2"。最多100个',
        },
        offset: {
          key: "offset",
          remark: "非必须参数。分页，偏移量。默认为0",
        },
        limit: {
          key: "limit",
          remark: "必须参数。分页，预期请求的数据量，取值范围 1 ~ 1000",
        },
      },
      output: {
        group_chat_list: {
          key: "group_chat_list",
          remark: "字符串格式的群列表",
        },
      },
      url: "/api/libs/wxwork_third/getGroupChatList.js",
    },
    {
      key: "getGroupChat",
      name: "获取客户群详情",
      description:
        "通过客户群ID，获取详情。包括群名、群成员列表、群成员入群时间、入群方式。（客户群是由具有客户群使用权限的成员创建的外部群）",
      input: {
        chat_id: {
          key: "chat_id",
          remark: "必须参数。客户群ID",
        },
      },
      output: {
        groupChat: {
          key: "groupChat",
          remark: "字符串格式的客户群详情",
        },
      },
      url: "/api/libs/wxwork_third/getGroupChat.js",
    },
    {
      key: "sendText",
      name: "发送应用文本消息",
      description: "发送应用消息:文本类型",
      input: {
        touser: {
          key: "touser",
          remark:
            "非必须参数。指定接收消息的成员，成员ID列表（多个接收者用‘|’分隔，最多支持1000个）。特殊情况：指定为”@all”，则向该企业应用的全部成员发送",
        },
        toparty: {
          key: "toparty",
          remark:
            "非必须参数。指定接收消息的部门，部门ID列表，多个接收者用‘|’分隔，最多支持100个。当touser为”@all”时忽略本参数",
        },
        totag: {
          key: "totag",
          remark:
            "非必须参数。指定接收消息的标签，标签ID列表，多个接收者用‘|’分隔，最多支持100个。当touser为”@all”时忽略本参数",
        },
        agentid: {
          key: "agentid",
          remark:
            "必须参数。企业应用的id，整型。企业内部开发，可在应用的设置页面查看；第三方服务商，可通过接口 获取企业授权信息 获取该参数值",
        },
        content: {
          key: "content",
          remark:
            "必须参数。消息内容，最长不超过2048个字节，超过将截断（支持id转译）",
        },
      },
      output: {
        invaliduser: {
          key: "invaliduser",
          remark: "无效的成员",
        },
        invalidparty: {
          key: "invalidparty",
          remark: "无效的部门",
        },
        invalidtag: {
          key: "invalidtag",
          remark: "无效的标签",
        },
      },
      url: "/api/libs/wxwork_third/sendText.js",
    },
    {
      key: "sendCard",
      name: "发送应用卡片消息",
      description: "发送应用消息:卡片",
      input: {
        touser: {
          key: "touser",
          remark:
            "非必须参数。指定接收消息的成员，成员ID列表（多个接收者用‘|’分隔，最多支持1000个）。特殊情况：指定为”@all”，则向该企业应用的全部成员发送",
        },
        toparty: {
          key: "toparty",
          remark:
            "非必须参数。指定接收消息的部门，部门ID列表，多个接收者用‘|’分隔，最多支持100个。当touser为”@all”时忽略本参数",
        },
        totag: {
          key: "totag",
          remark:
            "非必须参数。指定接收消息的标签，标签ID列表，多个接收者用‘|’分隔，最多支持100个。当touser为”@all”时忽略本参数",
        },
        agentid: {
          key: "agentid",
          remark:
            "必须参数。企业应用的id，整型。企业内部开发，可在应用的设置页面查看；第三方服务商，可通过接口 获取企业授权信息 获取该参数值",
        },
        title: {
          key: "title",
          remark:
            "必须参数。标题，不超过128个字节，超过会自动截断（支持id转译））",
        },
        description: {
          key: "description",
          remark:
            "非必须参数。描述，不超过512个字节，超过会自动截断（支持id转译）",
        },
        url: {
          key: "url",
          remark: "必须参数。点击后跳转的链接。",
        },
        btntx: {
          key: "btntx",
          remark:
            "非必须参数。按钮文字。 默认为“详情”， 不超过4个文字，超过自动截断。",
        },
      },
      output: {
        invaliduser: {
          key: "invaliduser",
          remark: "无效的成员",
        },
        invalidparty: {
          key: "invalidparty",
          remark: "无效的部门",
        },
        invalidtag: {
          key: "invalidtag",
          remark: "无效的标签",
        },
      },
      url: "/api/libs/wxwork_third/sendCard.js",
    },
  ],

  libs: [
    {
      key: "wxwork",
      name: "wxworkThirdApi",
      href: "https://github.com/liwenyue/co-wxwork-api",
    },
  ],
  config: {},
};

module.exports = model;
